The one stop reading center for newsreader writers.
This page is meant as a resource for people who are thinking
about writing a newsreader. It contains pointers to the
relevant standards, as well as more general documents about news
reading.
Since many newsreaders also function as mail readers, some mail
topics are also covered here.
News and Mail Standards
RFCs specify anything and everything that's important to the
Internet community, but I've picked out some that are of special
relevance to mail and news handling.
-
RFC 822 - Standard for ARPA
Internet Text Messages. This is the mother of all
modern message formats. RFC 822 is written from a mail
perspective, but it also applies to news. A revision of this
document is currently the subject of the DRUMS
IETF Working Group.
-
RFC 1036 - Standard for
Interchange of USENET Messages. This document extends RFC 822
into the news realm, and is currently the only official
document discussing the format of news messages per se. A
revision of this document is currently the subject of the USEFOR
IETF Working Group.
-
The Son of RFC 1036 is not an
actual RFC, but a sketch written by Henry Spencer of what
might have become an RFC. Work on this document has been
discontinued, but it's a very thorough document, and if you
close your eyes every time it mentions MIME (which is
(approx.) 136 times per page), it's quite nice. This is
probably the document that newsreader writers have relied most
heavily on the past few years. A PostScript version is also
available.
-
RFC 977 - Network News
Transfer Protocol. This document doesn't talk about message
format, but rather the NNTP protocol for communicating with
news servers. A revision of this document is currently the
subject of the NNTPEXT
IETF Working Group.
-
RFC 934, Proposed Standard for
Message Encapsulation. This document talks about how
forwarded messages are to be encapsulated.
-
RFC 1153, Digest Message
Format. This document defines a minimal digest format.
MIME
MIME - let me count thy words:
-
Multipurpose. MIME is meant to be used to do many
different things.
-
Internet. I think they thought "MIME" was a better
acronym than "MME".
-
Mail. Mail? Why am I blathering on about MIME here,
then? Because this is a lie; MIME is used, well, everywhere.
And perhaps "MIME" was considered a better acronym than "MIE"?
-
Extensions. All MIME documents are valid RFC 822
documents, so you can generally send a MIME document anywhere
at all.
This sounds very general and nice, but in specific, MIME is a
framework for achieving only two things:
-
Multi-lingual support. MIME allows you to specify the
character set and the language of header and body parts.
-
Multi media support. MIME allows you to mix different media
types (say, a text, an image and a sound) in one document.
That these things which have little to do with each other are
specified in the same documents may be considered unfortunate,
but it is, in many ways, convenient.
The MIME specification is spread out over a bewildering array of
documents. The central documents (RFC2045-2049) define a
framework and says how to extend this framework. The rest of
the documents extend this framework, and apply the techniques
described to new data types and media types. One should read
RFC2045 thoroughly to get an idea of the concepts behind MIME.
The rest of the documents follow on easily from that.
Implementing MIME support may seem like a daunting task, but
it's actually not very complex. There's a lot of coding
necessary, and that may be boring, but none of it is very
difficult.
The following lists all non-obsolete MIME RFCs. They are listed
in what I consider to be a decreasing order of importance. This
is subjective, of course, but some of the ones near the end of
the list are very obscure indeed.
-
RFC 2045. Format of Internet
Message Bodies.
-
RFC 2046. Media Types.
-
RFC 2047. Message Header
Extensions for Non-ASCII Text.
-
RFC 2048. Registration
Procedures.
-
RFC 2049. Conformance Criteria
and Examples.
-
RFC 2231.
MIME Parameter Value and Encoded Word Extensions: Character Sets,
Languages, and Continuations.
-
RFC 2112.
The MIME Multipart/Related Content-type.
-
RFC 1892. The
Multipart/Report Content Type for the Reporting of Mail System
Administrative Messages.
-
RFC 2183. Communicating
Presentation Information in Internet Messages: The
Content-Disposition Header Field.
-
RFC 1437. The Extension of
MIME Content-Types to a New Medium.
-
RFC 1563. The text/enriched
MIME Content-type.
-
RFC 2159. A MIME Body Part for
FAX.
-
RFC 2017. Definition of the
URL MIME External-Body Access-Type.
-
RFC 1344. Implications of MIME
for Internet Mail Gateways.
-
RFC 1641. Using Unicode with
MIME.
-
RFC 1556. Handling of
Bi-directional Texts in MIME.
-
RFC 2312. S/MIME Version 2
Certificate Handling.
-
RFC 2302. Tag Image File
Format (TIFF) - image/tiff MIME Sub-type Registration.
-
RFC 2161. A MIME Body Part
for ODA.
-
RFC 2110. MIME E-mail
Encapsulation of Aggregate Documents, such as HTML (MHTML).
-
RFC 2015. MIME Security with
Pretty Good Privacy (PGP).
-
RFC 1927. Suggested
Additional MIME Types for Associating Documents.
-
RFC 1844. Multimedia E-mail
(MIME) User Agent Checklist.
-
RFC 1767. MIME Encapsulation
of EDI Objects.
-
RFC 1741. MIME Content Type
for BinHex Encoded Files.
-
RFC 1740. MIME Encapsulation of
Macintosh Files - MacMIME.
-
RFC 2156, RFC 2157, RFC 2158, and RFC 2160. MIME and X.400.
Before reading an RFC, you should always check the RFC index to see whether the RFC
you are about to read has been obsoleted by a later RFC.
Implementation of the MIME standard is, to put it mildly, of
varying quality. For more on that subject, I think The MIME Comparison Derby might be
interesting reading.
Other Interesting Standards
-
RFC 1123, Requirements for Internet
Hosts - Application and Support. This is a central RFC that
specifies how hosts on the Internet are supposed to behave.
This is useful to have read, but isn't of particular use for
news/mail reader authors in particular.
-
RFC1843. HZ - A Data Format
for Exchanging Files of Arbitrarily Mixed Chinese and ASCII
characters
Standards Bodies and Working Groups
Most of the work on developing standards for the Internet is
directed by the IETF, the Internet
Engineering Task Force.
Mail standards are being worked on by IMC. Of particular interest
right now is this
internationalization document that talks about what mail
readers should do to be properly internationalized. Keywords:
UTF-8, UTF-8 and more UTF-8. And MIME.
Good Net-Keeping Seal Of Approval
A chap called Ron Newman came up with the excellent idea of
doing a survey to see which newsreaders complied with the RFCs,
and which newsreaders you should avoid like the plague.
He has written a document stating what a newsreader
would have to comply with to get the Good Net-Keeping Seal
of Approval.
The GNKSA has been revised, and the current version, maintained
by Jeroen Scheerder, can be found here.
Other Notes
This is more or less a collection of all interesting documents
I've found about news and mail reading.
Books
The books are listed in no particular order, and reviews of the books
will be added at a later date.
-
Pfaffenberger, Bryan:
The Usenet Book; Finding, Using, And
Surviving Newsgroups On The Internet
-
McDermott, James / Phillips, John:
Administering Usenet News Servers; A
Comprehensive Guide To Managing Internet
And Intranet
-
Mann, J.:
Using Usenet Newsgroups
-
Davis, Steve:
The Usenet Navigator Kit; Everything You
Need To Travel Usenet Quickly And
Efficiently
-
Lawrence, David / Spencer, Henry:
Managing Usenet
-
Rittner, Don:
Rittners Field Guide To Usenet
-
Hauben, Michael / Hauben,
Ronda / Truscott, Thomas:
Netizens; On The History And Impact Of
Usenet And The Internet
-
Kantor, Andrew:
An Introduction To The Internet : Including
E-Mail, Usenet News, And The
World-Wide Web
-
Mamer, Karl:
Get The News On Usenet : Using
Newsgroups To Join The Conversation,
Which Is Always In Progress
Other Resources
Discussion on mail software takes place primarily on the news.software.readers
newsgroup.
Software
Sources to many readers can be found at ftp.uu.net.
Using a more local mirror would probably be a good idea.
A virtually complete list of newsreaders can be found in Statland.
These notes were compiled by Lars
Magne Ingebrigtsen. If you have any further documents that you
think may be of interest, please do mail them to me at larsi@gnus.org.
2000-01-03 00:32:50